<?php

namespace Trawind\Remotes\Contracts\Repositories\Account\Account;


use Prettus\Repository\Contracts\RepositoryInterface;

/**
 * Interface CompanyRepository.
 *
 * @package namespace TrawindCloud\Contracts\Repositories\Account;
 */
interface CompanyRepository extends RepositoryInterface
{
    /**
     * Update company information.
     *
     * @param array $params
     * @param int $id
     * @return mixed
     */
    public function updateCompany(array $params, int $id);

    /**
     * Save company information.
     *
     * @param array $params
     * @return mixed
     */
    public function saveCompany(array $params);

    /**
     * Del company information.
     *
     * @param array $id
     * @return mixed
     */
    public function deleteCompany(array $id);

    /**
     * Whether the invalid.
     *
     * @param array $id
     * @return mixed
     */
    public function isCancellation(array $id);

    /**
     * Company status management.
     *
     * @param array $ids
     * @param $companyStatus
     * @return mixed
     */
    public  function  treatmentState(array $ids, $companyStatus);

    /**
     * Subsidiary tree structure.
     *
     * @param array $data
     * @param int $parentId
     * @return mixed
     */
    public  function tree(array $data,$parentId=0);


}
